$(function(){
    listNovedades();
    listTrabajadoresDSI();
});
/*-------------------------/--------------------------------------------------*/
function listTrabajadoresDSI(){
    $.getJSON("listaTrabajadoresDSI.do",
        function(data) {
            $('#trabajadorDSI').html("<option value=''>-</option>");
            $.each(data.namesTrabajadoresDSI, function(i,item){
                string = "<option value='"+item.cedula+"'>"+item.apellido+", "+item.nombre+"</option>";
                $('#trabajadorDSI').append(string)
            });
        });
}

function consultarEstadisticas(){
    $.ajax({
        method: 'POST',
        url: "consultarEstadisticasAction.do",
        data: $('#estadisticasForm').serialize(),
        dataType: 'json',
        success: processConsultaestadisticas
    });
    return false;
}

function processConsultaestadisticas(data) {
    if(!data.Estadisticas[0]){
        $('#tableResult').hide();
        $('#resultado').html("No hay resultados para los parametros dados").show();
        return;
    }

    $('#resultado').html("").hide();
    generica = "";
    especifica = "";
    divG = "";
    divE = "";
    table = "";
    genCount = 0;
    espCount = 0;
    $.each(data.Estadisticas, function(i,item){
        if(item.idGenerica != generica) {
            $(divE).append(table);
            $(divG).append(divE);
            $('#resultado').append(divG);

            // totales
            $('#ne_'+especifica+' .ne-tittle').append("<span class='ng-total'>Total: "+espCount+"</div>");
            $('#ng_'+generica+' .ng-tittle').append("<span class='ng-total'>Total: "+genCount+"</div>");
            espCount=0;
            genCount=0;

            //titulo generica
            generica = item.idGenerica;
            divG = $("<div class='nGen' id='ng_"+item.idGenerica+"'>");
            divG.append("<div class='ng-tittle'>"+item.nombreGenerica+"</div>");
            
            //titulo especifica
            especifica = "";
            especifica = item.idEspecifica;
            divE = $("<div class='nEsp' id='ne_"+item.idEspecifica+"'>");
            divE.append("<div class='ne-tittle'>"+item.nombreEspecifica+"</div>");

            table = $("<table class='datosNov'>");
        } else if(item.idEspecifica != especifica) {
            $(divE).append(table);
            $(divG).append(divE);
            $('#resultado').append(divG);

            // totales
            $('#ne_'+especifica+' .ne-tittle').append("<span class='ng-total'>Total: "+espCount+"</div>");
            espCount=0;

            //titulo especifica
            especifica = "";
            especifica = item.idEspecifica;
            divE = $("<div class='nEsp' id='ne_"+item.idEspecifica+"'>");
            divE.append("<div class='ne-tittle'>"+item.nombreEspecifica+"</div>");

            table = $("<table class='datosNov'>");
        }
        //datos novedad
        tableTr = $("<tr id='reporte_"+item.idReporte+"'>");
        tableTr.append("<td width='5%'><img alt='*' src='style/images/vineta_1.gif'/> </td>");
        tableTr.append("<td width='20%'>"+item.fechaSuceso+"</td>");
        tableTr.append("<td width='20%'>"+item.hora+"</td>");
        tableTr.append("<td width='45%'>"+item.agrega+"</td>");
        
        det = "<img src='style/images/detalles.png' alt='Detalles' width='20' height='20' class='showDetails'>";
        det += "<img src='style/images/pdf.gif' alt='/ Informe' width='20' height='20' class='showInforme'>";
        tableTr.append("<td width='10%' style='text-aling: center;'>"+det+"</td>");

        detalle = "<p><b>Novedad Generica: </b>"+item.nombreGenerica+"</p>";
        detalle = "<p><b>Novedad Especifica: </b>"+item.nombreEspecifica+"</p>";
        detalle += "<p><b>Fecha y hora: </b>"+item.fechaSuceso+" "+item.hora+"</p>";
        detalle += "<p><b>Fecha Reporte: </b>"+item.fechaReporte+"</p>";
        detalle += "<p><b>Via de Denuncia: </b>"+item.via+"</p>";
        detalle += "<p><b>Lugar: </b>"+item.espacio+" ("+item.sede+")</p>";
        detalle += "<p><b>Descripcion: </b>"+item.descripcion+"</p>";
        if(item.implicados[0]){
            detalle += "<div><b>Implicados: </b></div><ul>";
            $.each(item.implicados, function(j, implicado){
                detalle += "<li>"+implicado.nombre+"    "+implicado.ci+"    ("+implicado.tipo+")</li>";
            });
            detalle += "</ul>";
        } else detalle += "<p><b>Sin Implicados</b></p>";
        tableTr.append($("<td width='0%' id='detalleReporte_"+item.idReporte+"' class='detalle oculta'>").append(detalle));
        table.append(tableTr);
        genCount++;
        espCount++;

    });
    $('.detalle').hide();
    $(divE).append(table);
    $(divG).append(divE);
    $('#resultado').append(divG).show();
    $('#tableResult').show();
    // totales
    $('#ne_'+especifica+' .ne-tittle').append("<span class='ng-total'>Total: "+espCount+"</div>");
    $('#ng_'+generica+' .ng-tittle').append("<span class='ng-total'>Total: "+genCount+"</div>");

    $('.showDetails').click(function(){
        idReporte = $(this).parent().parent().attr('id').replace('reporte_','');
        detalle = $('#detalleReporte_'+idReporte).html();
        $('#detalleReporte').html(detalle);
        $('#detalleReporte').dialog("open");
    });
    $('.showInforme').click(function(){
        idReporte = $(this).parent().parent().attr('id').replace('reporte_','');
        alert("Reporte de novedades en formato PDF no disponible.\nReporte: "+idReporte);
    });
}

function listNovedades(){
    $.ajax({
        type: "POST",
        url: 'listNovedadesEspecificas.do',
        dataType: 'json',
        success: processListNovedades
    });
    return false
}

function processListNovedades(answer){
    cantidadNovedades = 0;
    $.each(answer, function(index, value){
        treeItem = $("<div id='tree-item-"+index+"' class='tree-item'>");

        treeHead = $("<div id='tree-head-"+index+"' class='tree-head'>");
        treeHead.append($("<img alt='+' src='style/imagesTree/plus.gif' class='tree-head-img' id='tree-head-img-"+index+"'/>"));
        treeHead.append($("<input type='checkbox' class='tree-check tree-head-check' id='tree-head-check-"+index+"'  value='"+value.type+"' name='novedadesGenericas'>"));
        treeHead.append($("<div id='tree-head-tittle-"+index+"' class='tree-head-tittle'>").append(value.novedadG));

        treeItem.append(treeHead);

        treeContent = $("<div id='tree-content-"+index+"' class='tree-content oculta'>");
        idx=0;
        $.each(value.novedades, function(index2, value2){
            treeContentItem = $("<div id='tree-content-item-"+index2+"' class='tree-content-item'>");
            treeContentItem.append($("<input type='checkbox' class='tree-check tree-content-check tree-content-check-"+index+"' id='tree-content-check-"+cantidadNovedades+"' value='"+value2.idNovedadEsp+"' name='novedadesEspecificas'>"));
            treeContentItem.append($("<input type='hidden'id='tittle-"+value2.idNovedadEsp+"' value='"+value2.novedadEsp+"'>"));
            treeContentItem.append($("<div class='tree-content-tittle' id='tree-content-tittle-"+value2.idNovedadEsp+"' value='"+value2.novedadEsp+"'>"+value2.novedadEsp+"</div>"));
            treeContent.append(treeContentItem);
            idx++;
            cantidadNovedades++;
        });
        treeContent.addClass('tree-content-size-'+idx);
        treeItem.append(treeContent);
        $('#novedadesTree').append(treeItem);
    });
    $('#novedadesTree').append(controlsTree());
    $('#novedadesWidget').toggleClass('muestra');

    $('#allChecks').click(allNovedades);
    $('#resetChecks').click(resetNovedades);
    $('#allExpands').click(allExpands);
    $('#resetExpands').click(resetExpands);
    $('.tree-head-img').click(function(){
        id = $(this).attr('id');
        treeIndex = id.replace('tree-head-img-', '', 'gi');
        content = $('#tree-content-'+treeIndex);
        if(content.hasClass('oculta')){
            content.removeClass('oculta').addClass('muestra');
            $('#tree-head-img-'+treeIndex).attr('src', 'style/imagesTree/minus.gif').attr('alt', '-');
        } else {
            content.removeClass('muestra').addClass('oculta');
            $('#tree-head-img-'+treeIndex).attr('src', 'style/imagesTree/plus.gif').attr('alt', '+');
        }
    });
    $('.tree-head-check').click(function(){
        id = $(this).attr('id');
        treeItemIndex = id.replace('tree-head-check-', '', 'gi');
        checked = $(this).attr('checked')=="checked";
        $('.tree-content-check-'+treeItemIndex).attr('checked',checked);
    });
    $('.tree-content-check').click(function(){
        checked = $(this).attr('checked');
        id = $(this).parent().parent().attr('id');
        treeItemIndex = id.replace('tree-content-', '', 'gi');
        if(!checked) $('#tree-head-check-'+treeItemIndex).attr('checked',false);
        else {
            n = $('#tree-content-'+treeItemIndex+' :checkbox:checked').size();
            if($('#tree-content-'+treeItemIndex).hasClass('tree-content-size-'+n))
                $('#tree-head-check-'+treeItemIndex).attr('checked',true);
        }
    });
    $('.consultaCargandoImg').css('display','none');
    $('.consultaCargando').css('display','block');
}

function resetNovedades(){
    $('.tree-check').attr('checked',false);
}
function allNovedades(){
    $('.tree-check').attr('checked',true);
}
function allExpands(){
    $('.tree-content').removeClass('oculta').addClass('muestra');
    $('.tree-head-img').attr('src', 'style/imagesTree/minus.gif').attr('alt', '-');
}
function resetExpands(){
    $('.tree-content').removeClass('muestra').addClass('oculta');
    $('.tree-head-img').attr('src', 'style/imagesTree/plus.gif').attr('alt', '+');
}
function controlsTree(){
    div = $("<div style='float:left; clear:both;'>");
    table = $("<table style='float:left; clear:both; width: 90%; padding-left: 10px;'>");
    tr = $("<tr>");
    tr.append($("<td>").append($("<a href='javascript:void(0);' id='allChecks'>").append("<img alt='' src='style/imagesTree/check-all.gif'/> Seleccionar Todas")));
    tr.append($("<td>").append($("<a href='javascript:void(0);' id='allExpands'>").append("<img alt='' src='style/imagesTree/expand-all.gif'/> Ver Todas")));
    table.append(tr);
    tr = $("<tr>");
    tr.append($("<td>").append($("<a href='javascript:void(0);' id='resetChecks'>").append("<img alt='' src='style/imagesTree/uncheck-all.gif'/> Deseleccionar Todas")));
    tr.append($("<td>").append($("<a href='javascript:void(0);' id='resetExpands'>").append("<img alt='' src='style/imagesTree/collapse-all.gif'/> Ocultar Todas")));
    table.append(tr);
    div.append(table);
    return div.html();
}